<?php

declare(strict_types=1);

namespace App\Core;

use App\Helpers\Env;
use App\Helpers\URL;

/**
 * Obtiene la base de las rutas.
 */
class Route
{
    private const ENVARNAME = 'app.base.url';

    private static string $baseURL;

    /**
     * Establece la URL base de la aplicación.
     */
    private static function setBaseURL(string $baseURL): void
    {
        self::$baseURL = URL::rtrimSlash($baseURL);
    }

    /**
     * Obtiene la URL base de la aplicación.
     */
    private static function getBaseURL(): string
    {
        if (empty(self::$baseURL)) {
            self::setBaseURL(Env::get(self::ENVARNAME));
        }

        return self::$baseURL;
    }

    /**
     * Genera la base de una ruta.
     */
    public static function base(string $path): string
    {
        return self::getBaseURL().$path;
    }
}
